﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DoNet.WechatPay.V2.Entitys.Results
{
    public class RefundQueryResult : PayResultCode
    {
        /*
        返回状态码	return_code	是	return_code	是	return_code	是	return_code	是	return_code	是	String(16)	SUCCESS/FAIL 此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
        返回信息	return_msg	否	return_msg	否	return_msg	否	return_msg	否	return_msg	否	String(128)	返回信息，如非空，为错误原因 签名失败 参数格式校验错误
        以下字段在return_code为SUCCESS的时候有返回												
        业务结果	result_code	是	result_code	是	result_code	是	result_code	是	result_code	是	String(16)	SUCCESS/FAIL
        错误代码	err_code	否	err_code	否	err_code	否	err_code	否	err_code	否	String(32)	详细参见错误列表
        错误代码描述	err_code_des	否	err_code_des	否	err_code_des	否	err_code_des	否	err_code_des	否	String(128)	错误返回的信息描述
        服务商的APPID	appid	是	appid	是	appid	是	appid	是	appid	是	String(32)	服务商商户的APPID
        商户号	mch_id	是	mch_id	是	mch_id	是	mch_id	是	mch_id	是	String(32)	调用接口提交的子商户公众账号ID
        子商户公众账号/应用ID	sub_appid	否	sub_appid	否	sub_appid	是	sub_appid	否	sub_appid	是	String(32)	调用接口提交的商户号
        子商户号	sub_mch_id	是	sub_mch_id	是	sub_mch_id	是	sub_mch_id	是	sub_mch_id	是	String(32)	调用接口提交的子商户号
        随机字符串	nonce_str	是	nonce_str	是	nonce_str	是	nonce_str	是	nonce_str	是	String(32)	微信返回的随机字符串
        签名	sign	是	sign	是	sign	是	sign	是	sign	是	String(32)	微信返回的签名，详见签名生成算法

        微信支付订单号	transaction_id	是	transaction_id	是	transaction_id	是	transaction_id	是	transaction_id	是	String(32)	微信支付订单号
        商户订单号	out_trade_no	是	out_trade_no	是	out_trade_no	是	out_trade_no	是	out_trade_no	是	String(32)	商户系统内部订单号，要求32个字符内（最少6个字符），只能是数字、大小写字母_-|*且在同一个商户号下唯一。详见商户订单号
        商户退款单号	out_refund_no	是	out_refund_no	是	out_refund_no	是	out_refund_no	是	out_refund_no	是	String(64)	商户系统内部的退款单号，商户系统内部唯一，只能是数字、大小写字母_-|*@ ，同一退款单号多次请求只退一笔。
        微信退款单号	refund_id	是	refund_id	是	refund_id	是	refund_id	是	refund_id	是	String(32)	微信退款单号
        订单金额	total_fee	是	total_fee	是	total_fee	是	total_fee	是	total_fee	是	int	订单总金额，单位为分，只能为整数，详见支付金额
        应结订单金额	settlement_total_fee	否	settlement_total_fee	否	settlement_total_fee	否	settlement_total_fee	否	settlement_total_fee	否	int	当订单使用了免充值型优惠券后返回该参数，应结订单金额=订单金额-免充值优惠券金额。
        货币种类	fee_type	否	fee_type	否	fee_type	否	fee_type	否	fee_type	否	String(8)	符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型
        现金支付金额	cash_fee	是	cash_fee	是	cash_fee	是	cash_fee	是	cash_fee	是	int	订单现金支付金额，详见支付金额
        退款笔数	refund_count	是	refund_count	是	refund_count	是	refund_count	是	refund_count	是	int	当前返回退款笔数
        商户退款单号	out_refund_no_$n	是	out_refund_no_$n	是	out_refund_no_$n	是	out_refund_no_$n	是	out_refund_no_$n	是	String(64)	商户系统内部的退款单号，商户系统内部唯一，只能是数字、大小写字母_-|*@ ，同一退款单号多次请求只退一笔。
        微信退款单号	refund_id_$n	是	refund_id_$n	是	refund_id_$n	是	refund_id_$n	是	refund_id_$n	是	String(32)	微信退款单号
        退款渠道	refund_channel_$n	否	refund_channel_$n	否	refund_channel_$n	否	refund_channel_$n	否	refund_channel_$n	否	String(16)	"ORIGINAL—原路退款、BALANCE—退回到余额、OTHER_BALANCE—原账户异常退到其他余额账户、OTHER_BANKCARD—原银行卡异常退到其他银行卡"
        订单总退款次数	total_refund_count	否	total_refund_count	否	total_refund_count	否	total_refund_count	否	total_refund_count	否	int	订单总共已发生的部分退款次数，当请求参数传入offset后有返回
        申请退款金额	refund_fee_$n	是	refund_fee_$n	是	refund_fee_$n	是	refund_fee_$n	是	refund_fee_$n	是	int	退款总金额,单位为分,可以做部分退款
        代金券类型	coupon_type_$n_$m	否	coupon_type_$n_$m	否	coupon_type_$n_$m	否	coupon_type_$n_$m	否	coupon_type_$n_$m	否	String(8)	"CASH--充值代金券
        NO_CASH---非充值代金券
        订单使用代金券时有返回（取值：CASH、NO_CASH）。$n为下标,$m为下标,从0开始编号，举例：coupon_type_$0_$1"
        总代金券退款金额	coupon_refund_fee_$n	否	coupon_refund_fee_$n	否	coupon_refund_fee_$n	否	coupon_refund_fee_$n	否	coupon_refund_fee_$n	否	int	代金券退款金额<=退款金额，退款金额-代金券或立减优惠退款金额为现金，说明详见代金券或立减优惠
        退款代金券使用数量	coupon_refund_count_$n	否	coupon_refund_count_$n	否	coupon_refund_count_$n	否	coupon_refund_count_$n	否	coupon_refund_count_$n	否	int	退款代金券使用数量 ,$n为下标,从0开始编号
        退款代金券ID	coupon_refund_id_$n_$m	否	coupon_refund_id_$n_$m	否	coupon_refund_id_$n_$m	否	coupon_refund_id_$n_$m	否	coupon_refund_id_$n_$m	否	String(20)	退款代金券ID, $n为下标，$m为下标，从0开始编号
        单个代金券退款金额	coupon_refund_fee_$n_$m	否	coupon_refund_fee_$n_$m	否	coupon_refund_fee_$n_$m	否	coupon_refund_fee_$n_$m	否	coupon_refund_fee_$n_$m	否	 int	单个退款代金券支付金额, $n为下标，$m为下标，从0开始编号
        退款状态	refund_status_$n	是	refund_status_$n	是	refund_status_$n	是	refund_status_$n	是	refund_status_$n	是	String(16)	"退款状态：
        SUCCESS—退款成功
        REFUNDCLOSE—退款关闭，指商户发起退款失败的情况。
        PROCESSING—退款处理中
        CHANGE—退款异常，退款到银行发现用户的卡作废或者冻结了，导致原路退款银行卡失败，可前往商户平台（pay.weixin.qq.com）-交易中心，手动处理此笔退款。$n为下标，从0开始编号。"
        退款资金来源	refund_account_$n	否	refund_account_$n	否	refund_account_$n	否	refund_account_$n	否	refund_account_$n	否	String(30)	"REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户
        REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款
        $n为下标，从0开始编号。"
        退款入账账户	refund_recv_accout_$n	是	refund_recv_accout_$n	是	refund_recv_accout_$n	是	refund_recv_accout_$n	是	refund_recv_accout_$n	是	String(64)	"取当前退款单的退款入账方
        1）退回银行卡：
        {银行名称}{卡类型}{卡尾号}
        2）退回支付用户零钱:
        支付用户零钱
        3）退还商户:
        商户基本账户
        商户结算银行账户
        4）退回支付用户零钱通:
        支付用户零钱通"
        退款成功时间	refund_success_time_$n	否	refund_success_time_$n	否	refund_success_time_$n	否	refund_success_time_$n	否	refund_success_time_$n	否	String(20)	退款成功时间，当退款状态为退款成功时有返回。$n为下标，从0开始编号。
 
        */
    }
}
